/*
 * ArchivoAuxiliar.h
 *
 *  Created on: 19/05/2013
 *      Author: jonathan
 */

#ifndef ARCHIVOAUXILIAR_H_
#define ARCHIVOAUXILIAR_H_
#include <iostream>
#include "../../commons/bitstream.h"
#include "../../typedefs.hpp"
#include "../../commons/ArchivoUtils.h"
#include "../estructuras/EntradaAuxiliar.h"
using namespace std;


class ArchivoAuxiliar {
private:
	BitStream * stream;
	EntradaAuxiliar * entrada;
	EntradaAuxiliar * leer();
	FileName path;
public:
	void escribir(EntradaAuxiliar*);
	EntradaAuxiliar * next();
	EntradaAuxiliar * actual();
	ArchivoAuxiliar(FileName, ios_base::openmode mode);
	virtual ~ArchivoAuxiliar();
	static const EnteroLargo LONGITUD_BLOQUE_TEXTO = 7;
	static const EnteroLargo LONGITUD_BLOQUE_DOC = 7;
	static const EnteroLargo LONGITUD_BLOQUE_POS = 7;
//    FileName getPath() ;
    void setPath(FileName path);
	void close();
	void open(FileName, fstream::openmode);
	bool hasNext();

};

#endif /* ARCHIVOAUXILIAR_H_ */

